package com.changhong.framework.sdfs.namenode.server.register;

import com.changhong.framework.sdfs.namenode.server.datanode.DataNodeInfo;
import com.changhong.framework.sdfs.namenode.server.datanode.DataNodeLeaseManager;

/**
 * @author summer
 */
public interface DataNodeRegistry{

    /**
     * 注册数据节点对象
     * @param dataNode 数据对象
     */
    void register(DataNodeInfo dataNode);

    /**
     * 数据节点下线
     * @param appName
     * @param id
     * @return
     */
    boolean cancel(String appName, String id);

    /**
     * 数据节点心跳续约
     * @param appName
     * @param id
     * @return
     */
    boolean renew(String appName, String id);

    /**
     * 剔除所有的数据节点
     */
    void evict();
}
